import app.Anuncio;
import app.BuscarPropiedad;
import app.Identificarse;
import app.PublicarAnuncio;
import app.Registrarse;
import app.Usuario;

import java.util.Scanner;
import java.util.ArrayList;
import java.util.TreeMap;

public class Main {

	public static void main(String[] args) {
		ArrayList<Anuncio> anuncios = new ArrayList<Anuncio>();
		TreeMap<String, Usuario> registro = new TreeMap<String, Usuario>();
		
		Scanner sc = new Scanner(System.in);

		int opcion = 0;

		do {
			System.out.println("1.- Registrarse.");
			System.out.println("2.- Autenticarse.");
			System.out.println("3.- Publicar anuncio.");
			System.out.println("4.- Buscar propiedad.");
			System.out.println("0.- Salir de la aplicacion.\n");

			boolean input = true;
			
			do {
				input = true;
				System.out.print("Elija una opcion: ");
				
				try {
					opcion = Integer.parseInt(sc.nextLine().trim());
				} catch (NumberFormatException e) {
					System.out.println("\nHa introducido un valor incorrecto.");
					input = false;
				}
				
				System.out.println("");
			} while (input == false);

			switch (opcion) {
			case 0:
				System.out.println("Cerrado el sistema.\n");
				break;
			case 1:
				Usuario user;
				if ((user = Registrarse.rg()) != null)
					if (!registro.containsKey(user.getCorreo()))
						registro.put(user.getCorreo(), user);
					else
						System.out.println("Error: Correo ya registrado en el Sistema.\n");
				break;
			case 2:
				Usuario user_ = Identificarse.id();
				if (registro.containsKey(user_.getCorreo()) && (user_.getPassword().equals(registro.get(user_.getCorreo()).getPassword())))
					System.out.println("Identificacion correcta\n");
				else
					System.out.println("Identificacion fallida\n");
				break;
			case 3:
				Anuncio a = PublicarAnuncio.pa();
				if (a != null)
					anuncios.add(a);
				break;
			case 4:
				BuscarPropiedad.bp(anuncios);
				break;
			default:
				System.out.println("Opcion incorrecta.\n");
			}

		} while (opcion != 0);
	}
}
